Архитектура ОС

Назначение и функции операционных систем. Эволюция ОС

Архитектура ОС

План лекции

1. Что такое операционная система

2. Назначение и функции ОС

3. Роль ОС как абстракции аппаратного обеспечения

4. Фундаментальные проблемы ОС

5. Эволюция операционных систем

6. Классификация ОС

Назначение и функции ОС. Эволюция ОС
Архитектура ОС

1. Что такое операционная система

Операционная система — это программа (или комплекс программ), управляющая ресурсами компьютера и обеспечивающая интерфейс между пользователем и аппаратурой.

Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Два взгляда на ОС

С точки зрения пользователя:

  • ОС как расширение машины
  • Предоставляет удобный интерфейс
  • Скрывает сложность аппаратуры
  • Создаёт виртуальную машину

С точки зрения системы:

  • ОС как менеджер ресурсов
  • Контролирует распределение процессорного времени
  • Управляет памятью и устройствами
  • Обеспечивает порядок доступа
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

ОС как виртуальная машина

┌─────────────────────────────────┐
│         Пользователь            │
├─────────────────────────────────┤
│   Расширенная машина (ОС)       │
│  ┌───────────┐ ┌──────────────┐ │
│  │ Файлы     │ │ Процессы     │ │
│  ├───────────┤ ├──────────────┤ │
│  │ Виртуальн.│ │ Абстрактные  │ │
│  │ память    │ │ устройства   │ │
│  └───────────┘ └──────────────┘ │
├─────────────────────────────────┤
│   Аппаратное обеспечение (HAL)  │
└─────────────────────────────────┘
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

2. Назначение и функции ОС

  • Управление процессами — создание, уничтожение, синхронизация, коммуникация
  • Управление памятью — распределение, виртуальная память, защита
  • Управление файловой системой — создание, удаление, организация, доступ
  • Управление устройствами ввода-вывода — драйверы, буферизация, планирование
  • Интерфейс пользователя — CLI, GUI
  • Защита и безопасность — аутентификация, авторизация, аудит
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Управление процессами

  • Создание и уничтожение процессов
  • Планирование выполнения (какому процессу дать процессорное время)
  • Синхронизация между процессами
  • Межпроцессное взаимодействие (IPC)
  • Обработка взаимоблокировок
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Управление памятью

  • Отслеживание занятой и свободной памяти
  • Распределение памяти между процессами
  • Виртуальная память и страничная организация
  • Защита памяти процессов друг от друга
  • Свопинг (пересылка на диск и обратно)
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Управление файловой системой

  • Создание и удаление файлов и каталогов
  • Организация иерархической структуры каталогов
  • Управление правами доступа
  • Размещение файлов на диске
  • Резервное копирование и восстановление
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Управление устройствами ввода-вывода

  • Драйверы устройств — унификация доступа
  • Буферизация данных
  • Планирование операций ввода-вывода
  • Обработка прерываний
  • SPOOLing (Simultaneous Peripheral Operations On-Line)
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

3. Роль ОС как абстракции аппаратного обеспечения

┌──────────────────────────┐
│      Приложения          │
├──────────────────────────┤
│      Библиотеки          │
├──────────────────────────┤
│   Системные вызовы (API) │
├──────────────────────────┤
│      Ядро ОС             │
├──────────────────────────┤
│  Аппаратное обеспечение  │
└──────────────────────────┘
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Системные вызовы и API

  • Системный вызов — интерфейс взаимодействия программы с ядром ОС
  • Программа запрашивает у яд выполнение привилегированной операции
  • Примеры: read(), write(), open(), fork(), exec()

Режим пользователя:

  • Ограниченный доступ
  • Невозможно напрямую работать с оборудованием

Режим ядра:

  • Полный доступ к аппаратуре
  • Выполнение любых инструкций
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Файловая абстракция устройств

  • В UNIX-системах: «всё есть файл»
  • Устройства представляются как специальные файлы (/dev/...)
  • Единообразный интерфейс: open(), read(), write(), close()
  • Сокеты, каналы, терминалы — тоже файлы
  • Позволяет перенаправлять потоки данных
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Виртуализация ресурсов

  • Виртуальная память — каждый процесс «видит» своё адресное пространство
  • Виртуальный процессор — иллюзия исключительного владения CPU
  • Виртуальные устройства — прозрачный доступ к разделяемым ресурсам
  • Каждый процесс работает в собственной «виртуальной машине»
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

4. Фундаментальные проблемы ОС

  • Разделяемые ресурсы и конкуренция за них
  • Проблема синхронизации процессов
  • Взаимоблокировки (deadlocks)
  • Проблема безопасности и защиты данных
  • Производительность и масштабируемость
  • Переносимость и совместимость
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Разделяемые ресурсы и синхронизация

  • Ресурсы бывают исключаемые (принтер, файл для записи) и разделяемые (диск, файл для чтения)
  • Гонка данных (race condition) — результат зависит от порядка выполнения
  • Необходимы механизмы синхронизации: мьютексы, семафоры, мониторы
Процесс A:  read(x) → x+1 → write(x)
Процесс B:  read(x) → x+1 → write(x)
Результат:  потеря обновления!
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Взаимоблокировки (deadlocks)

Взаимоблокировка — ситуация, когда два или более процесса не могут продолжить выполнение, ожидая ресурсы друг друга.

Условия Коффмана (все четыре одновременно):

  1. Взаимное исключение
  2. Удержание и ожидание
  3. Отсутствие перераспределения
  4. Циклическое ожидание
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Безопасность, производительность, переносимость

Безопасность:

  • Аутентификация пользователей
  • Авторизация доступа
  • Аудит действий
  • Изоляция процессов

Производительность:

  • Минимизация накладных расходов
  • Масштабируемость на многоядерных системах
  • Баланс между справедливостью и эффективностью
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

5. Эволюция операционных систем

1940-е → 1950-е → 1960-е → 1970-е → 1980-90-е → 2000-е → наши дни
  Поколение:  0       1        2        3          4         5       ?
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Поколение 0 (1940-е): отсутствие ОС

  • Ручное управление через переключатели и перфокарты
  • Программист — он же оператор
  • Время подготовки задачи \gg время вычисления
  • ЭНИАК, Марк I
  • Резервирование машинного времени по расписанию
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Поколение 1 (1950-е): пакетная обработка

  • Системы пакетной обработки (batch processing)
  • Оператор собирает задачи в пакет \to загружает в машину
  • Монитор (резидентный загрузчик) — прообраз ОС
  • Устранён простои между задачами
  • Проблема: отсутствие интерактивности
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Поколение 2 (1960-е): мультипрограммирование

  • Мультипрограммирование — в памяти несколько задач, CPU переключается между ними
  • Разделение времени (time-sharing) — каждый пользователь получает «квант» времени
  • IBM OS/360 — первый крупный проект ОС
  • MULTICS — предвестник UNIX
  • CTSS (MIT) — первая система разделения времени
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Поколение 3 (1970-е): UNIX и микроядра

  • UNIX (Кен Томпсон, Деннис Ритчи, Bell Labs, 1969) — переносимая, простая, мощная
  • Философия UNIX: делай одну вещь и делай её хорошо
  • Язык C — ОС написана на высокоуровневом языке
  • MINIX (Эндрю Таненбаум) — учебная ОС, вдохновившая Linux
  • Появление концепции микроядра
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Поколение 4 (1980–90-е): ПК и графический интерфейс

  • Персональные компьютеры: Apple, IBM PC
  • MS-DOS — однозадачная ОС для IBM PC
  • Windows (3.1 → 95 → NT) — графический интерфейс, многозадачность
  • Mac OS — пионер GUI (заимствовано у Xerox PARC)
  • Linux (1991, Линус Торвальдс) — свободная ОС
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Поколение 5 (2000-е): мобильные и сетевые ОС

  • Мобильные ОС: iOS (2007), Android (2008)
  • Сетевые ОС — прозрачный доступ к удалённым ресурсам
  • Распределённые системы — кластеры, grid-вычисления
  • Виртуализация на уровне ОС (VMware, Xen)
  • Встроенные ОС (Embedded Linux, QNX)
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Современные тенденции

  • Облачные ОС — AWS, Azure, Google Cloud
  • Контейнеризация: Docker, Kubernetes
  • IoT-ОС — для умных устройств, датчиков
  • Унифицированные платформы: Windows → Windows 10/11 (единая база)
  • Безмикроядерная архитектура: seL4, Fuchsia
  • ИИ-оптимизации в планировании и управлении памятью
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

6. Классификация ОС

По числу задач:

  • Однозадачные (MS-DOS)
  • Многозадачные (Linux, Windows)

По числу пользователей:

  • Однопользовательские (MS-DOS)
  • Многопользовательские (UNIX)

По типу обработки:

  • Пакетные
  • С разделением времени
  • Реального времени (RTOS)

По архитектуре ядра:

  • Монолитные (Linux)
  • Микроядерные (MINIX, QNX)
  • Гибридные (Windows NT)
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Классификация по области применения

Тип ОС Примеры Особенности
Настольные Windows, macOS, Linux GUI, широкая совместимость
Серверные Linux Server, Windows Server Надёжность, масштабируемость
Мобильные Android, iOS Энергоэффективность, тач-интерфейс
Встраиваемые FreeRTOS, VxWorks Минимальные требования, реальное время
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Заключение

Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Ключевые выводы лекции

  • ОС — ключевой компонент любой вычислительной системы

  • Две главные роли ОС: расширение машины и менеджер ресурсов

  • Эволюция ОС тесно связана с развитием аппаратного обеспечения

  • Современные ОС решают сложные проблемы управления ресурсами и безопасности

Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Вопросы для самоконтроля

  1. Что такое операционная система? Какие две основные точки зрения на ОС существуют?
  2. Перечислите основные функции операционной системы.
  3. В чём заключается роль ОС как слоя абстракции?
  4. Какие фундаментальные проблемы решает ОС?
  5. Опишите основные этапы эволюции операционных систем.
  6. Какие критерии используются для классификации ОС?
  7. Чем отличается мультипрограммирование от разделения времени?
  8. Какие тенденции развития ОС можно выделить в настоящее время?
Назначение и функции ОС. Эволюция ОС
Архитектура ОС

Рекомендуемые ресурсы

Основная литература:

  1. Таненбаум Э., Бос Х. Современные операционные системы. 4-е изд. — Питер, 2015.
  2. Столлингс В. Операционные системы. Внутреннее устройство и принципы проектирования. 9-е изд.

Дополнительная литература:

  1. Олифер В.Г., Олифер Н.А. Сетевые операционные системы.
  2. Иртегов Д.В. Введение в операционные системы.
Назначение и функции ОС. Эволюция ОС

Приветствуйте аудиторию, представьтесь и озвучьте тему лекции. Скажите, что сегодня мы разберёмся, зачем нужны операционные системы и как они появились.

Кратко пробегитесь по плану: начнём с базовых понятий, затем функции и абстракции, после — проблемы и эволюция, и завершим классификацией.

Дайте определение ОС, подчеркнув, что это не одна программа, а целый комплекс. Приведите знакомые примеры: Windows, Linux, macOS — всё это операционные системы.

Объясните два подхода через аналогию: для пользователя ОС — как пульт управления сложным устройством, а для системы — как диспетчер на заводе, распределяющий ресурсы.

Поясните схему: каждый слой абстракции упрощает работу вышележащему уровню. Без ОС программисту пришлось бы работать напрямую с регистрами и прерываниями процессора.

Перечислите функции и скажите, что сейчас мы детально разберём каждую из них. Это не полный список, но основные направления.

Объясните, что процесс — это выполняемая программа. Подчеркните: на одноядрном CPU в каждый момент работает только один процесс, а иллюзию параллельности создаёт планировщик.

Приведите пример: когда программ не хватает RAM, система переносит часть данных на диск — свопинг. Спросите, замечали ли студенты, как компьютер «тормозит» при нехватке памяти.

Подчеркните иерархическую организацию каталогов как одно из ключевых изобретений в информатике. Проведите аналогию с бумажным архивом и папками.

Упомяните, что некорректные драйверы — частая причина синего экрана смерти в Windows. SPOOLing можно объяснить на примере очереди печати на принтер.

Объясните схему по слоям: каждый уровень абстракции упрощает работу вышележащему. Без ОС программисту приходилось бы работать напрямую с регистрами и прерываниями.

Объясните разницу режимов: в пользовательском режиме программа ограничена, а системный вызов безопасно переключает её в режим ядра. Это фундаментальный механизм защиты ОС.

Подчеркните элегантность философии «всё есть файл». Покажите пример: `cat /dev/urandom` или перенаправление `ls | grep txt` — pipe тоже является файлом.

Подчеркните: виртуальная память позволяет запускать программы крупнее физической RAM. Каждый процесс «думает», что он единственный владелец всей памяти компьютера.

Все перечисленные проблемы связаны с тем, что ресурсы конечны и разделяются между процессами. Это будет ключевой темой всего курса — мы вернёмся к каждой из них.

Разберите пример с потерей обновления пошагово на доске. Подчеркните: результат зависит от порядка выполнения — это и есть гонка данных, ключевая проблема параллелизма.

Объясните условия Коффмана на бытовом примере: два человека в узком коридоре, каждый ждёт, пока другой отойдёт. Разрушение любого из четырёх условий предотвращает дедлок.

Перечислите три аспекта и подчеркните вечный компромисс: чем строже безопасность, тем меньше удобство для пользователя. Баланс — ключевая задача разработчиков ОС.

Начинаем исторический экскурс. Подчеркните: каждое поколение ОС — это ответ на ограничения предыдущего, двигаемое развитием аппаратного обеспечения.

Расскажите про перфокарты и тумблеры. Подчеркните: время подготовки задачи на порядки превышало время вычисления — аппарат простаивал.

Объясните смысл пакетной обработки: оператор вместо программиста загружал задачи пачками. Проблема — результат виден только после выполнения всего пакета.

Ключевой прорыв: мультипрограммирование позволило утилизировать CPU, пока одна задача ждёт ввода-вывода. Упомяните книгу Брукса «Мифический человеко-месяц» про провал OS/360.

Подчеркните историческое значение UNIX: впервые ОС написана на высокоуровневом языке C, что сделало её переносимой. Именно UNIX заложил основы всех современных ОС.

Свяжите с личным опытом студентов: Windows, macOS, Linux — продукты этого поколения. Упомяните, что Линус Торвальдс начал писать Linux будучи студентом, просто ради интереса.

Мобильные ОС — самые массовые в мире: Android работает на миллиардах устройств. Принципы те же, но ограничения другие — батарея, ограниченная память, сенсорный ввод.

Упомяните контейнеризацию как следующий шаг эволюции виртуализации. Подчеркните: Docker — не новая ОС, а механизм изоляции процессов поверх существующего ядра.

Разберите каждую категорию с примерами. Подчеркните, что одна и та же ОС может попадать в несколько категорий — например, Linux бывает и настольной, и серверной, и встраиваемой.

Обратите внимание на таблицу — сравните требования к разным типам ОС. Спросите студентов, с какими типами систем они сталкивались лично.

Подведите краткий итог лекции: мы разобрали, что такое ОС, её функции, проблемы и историческое развитие. Переходите к ключевым выводам.

Акцентируйте внимание на связи двух ролей ОС и эволюции: каждая эпоха решала свои проблемы, но базовые принципы остаются актуальными и сегодня.

Предложите студентам обсудить несколько вопросов устно. Обратите внимание на вопрос 7 — различие мультипрограммирования и разделения времени часто вызывает сложности.

Порекомендуйте студентам начать с Таненбаума как основного учебника. Упомяните, что книга Столлингса даёт более глубокое погружение в архитектурные аспекты.